Hardware and software vendors offer platforms that allow a single physical machine (e.g., a host computer) to be partitioned into multiple independent network components (e.g., virtual machines). A virtual machine (VM) also referred to as an endpoint is typically software executed on a host machine (e.g., a node) in a communications network. A logical or virtual network connects a plurality of VMs, where different virtual networks may co-exist over the same infrastructure, comprising of networking equipment and physical hosts. A VM is generally associated with a single tenant over a virtual network implemented for that tenant. The virtual network is operated according to a set of service level agreements (SLAs) negotiated by the respective tenant. The SLA defines the level of service that will be provided to the tenant, which is characterized by the level of resources that may be utilized by the tenant's virtual network.
Multi-tenant virtual environments are configured to rely on an infrastructure in which resources are shared in order to achieve a higher profit margin by leveraging the economy of scale. Virtualized solutions that offer full consolidation of resources have been deployed to provide processing and storage resources, and more recently to deliver networking services. In a virtualized multi-tenant environment, it is desirable to provide different levels quality of service (QoS) for different tenants depending on the provisions of a tenant's SLA. To accomplish this, different types of traffic may be defined according to throughput and latency guarantees, such that services associated with a higher QoS, per a tenant's SLA, are given priority over a service associated with a lower QoS.
The above implementation ensures that a tenant with a more expensive or higher level subscription gets the proper priority and service. In the context of networking services, generally, network traffic and data communications bandwidth is managed using a best effort approach by simply transmitting data to the extent that bandwidth is available. Many protocols and mechanisms have been developed to provide different levels of QoS guarantees on top of the best effort approach. Such mechanisms can be configured to monitor and control the QoS either by controlling flow of communication between two network nodes, or by controlling transmission of data packets over a communications network based on the category or class to which the data packet belongs (i.e., flow QoS v. class QoS).
Currently, there is no enabling mechanism in a multi-tenant communications network for a tenant to differentiate between the traffic types associated with the tenant or to apply different services levels for the different types of traffic in the same manner as it is possible in a traditional single tenant environment. This is due to the fact that, at the network infrastructure level, data transmission generated or designated for the different virtual networks, potentially owned by different tenants, the same resources are used by the different virtual networks, where the virtual networks compete with each other for resource allocation.